package jsonData

import (
	"server/game/item"
)

type ErrCode int32

const (
	OK                  ErrCode = 0
	InterNalError       ErrCode = 1
	TokenError          ErrCode = 2
	ConnExceeded        ErrCode = 3
	RepeatLoginReq      ErrCode = 4
	PlatTypeError       ErrCode = 5
	PlatIdError         ErrCode = 6
	ServerFull          ErrCode = 7
	CloseServerError    ErrCode = 8
	SessionInvalid      ErrCode = 9
	LockLoginPleaseWait ErrCode = 10
	LoginCDError        ErrCode = 11
	DBReturnError       ErrCode = 12
	LoginParamError     ErrCode = 13
	CreateCardError     ErrCode = 14
)

type MsgLoginReq struct {
	Token       string `json:"token"`
	ShowAreaId  int32  `json:"show_area_id"`
	SessionId   string `json:"session_id"`
	DistinctId  string `json:"distinct_id"`
	Os          string `json:"os"`
	ChanneCode  int32  `json:"channe_code"` //渠道
	ChannePlat  string `json:"channe_plat"` //渠道码(平台id)
	ChannelUUID string `json:"channel_uuid"`
	RequestId   int64  `bson:"request_id" json:"request_id"`
}
type MsgLoginRes struct {
	Ret        int    `json:"ret"` // 0 成功
	SessionId  string `json:"session_id"`
	UserId     string `json:"user_id"`
	ServerTime int64  `json:"server_time"`
	RequestId  int64  `bson:"request_id" json:"request_id"`
}
type Bytes struct {
	Value []byte `json:"value"`
}
type BytesList struct {
	ValueList []Bytes `json:"value_list"`
}
type MsgPing struct{}
type MsgPong struct {
	NowTime int64 `json:"now_time"`
}
type MsgNil struct{}
type TaskInfo struct {
	UserId    string `json:"user_id"`
	TaskTmpId int64  `json:"task_tmp_id"`
	TaskId    int64  `json:"task_id"`
	TaskVar   string `json:"task_var"`
	TaskState int64  `json:"task_state"`
	TaskType  int64  `json:"task_type"`
}
type MsgTaskListReq struct {
	UserId    string `json:"user_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgTaskListRes struct {
	Ret       ErrCode    `json:"ret"`
	TaskList  []TaskInfo `json:"task_list"`
	RequestId int64      `bson:"request_id" json:"request_id"`
}
type MsgCreateTaskInfoReq struct {
	UserId    string `json:"user_id"`
	TaskId    int64  `json:"task_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgCreateTaskInfoRes struct {
	Ret       ErrCode `json:"ret"`
	RequestId int64   `bson:"request_id" json:"request_id"`
}
type MsgUpdateTaskVarReq struct {
	UserId    string `json:"user_id"`
	TaskId    int64  `json:"task_id"`
	Var       int64  `json:"var"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgUpdateTaskVarRes struct {
	Ret ErrCode `json:"ret"`
}
type MsgUpdateTaskStateReq struct {
	UserId    string `json:"user_id"`
	TaskId    int64  `json:"task_id"`
	State     int64  `json:"state"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgUpdateTaskStateRes struct {
	Ret       ErrCode    `json:"ret"`
	TaskList  []TaskInfo `json:"task_list"`
	RequestId int64      `bson:"request_id" json:"request_id"`
}
type TaskType int32

const (
	TaskTypeNone    TaskType = 0
	TaskTypeDaily   TaskType = 1
	TaskTypeWeekly  TaskType = 2
	TaskTypeMonthly TaskType = 3
	TaskTypeYearly  TaskType = 4
)

type TaskState int32

const (
	TaskStateNone     TaskState = 0
	TaskStateUnFinish TaskState = 1
	TaskStateFinish   TaskState = 2
)

type MsgLoadFinish struct {
	SysTime uint32 `json:"sys_time"`
}
type ServerLoadType int32

const (
	Free    ServerLoadType = 0
	Crowded ServerLoadType = 1
	Busy    ServerLoadType = 2
	Full    ServerLoadType = 3
	Close   ServerLoadType = 4
)

type LogoutType int32

const (
	Normal  LogoutType = 0
	Occupy  LogoutType = 1
	KickOut LogoutType = 2
)

type MsgNotifyLogout struct {
	Reason int32 `json:"reason"`
}
type MsgGmReq struct {
	Command   string   `json:"command"`
	Param     []string `json:"param"`
	RequestId int64    `bson:"request_id" json:"request_id"`
}

// RequestCreatePlayer 创角请求结构体
type MsgCreatePlayerReq struct {
	PlatformId          string         `json:"platform_id"`
	PlayerName          string         `json:"player_name"`
	ZoneInfo            string         `json:"zone_info"`
	CharacterAppearance string         `json:"character_appearance"`
	VoiceMapping        string         `json:"voice_mapping"`
	Gender              string         `json:"gender"`
	Experience          int            `json:"experience"`
	IdentityLevel       int            `json:"identity_level"`
	IncomeSpeed         int            `json:"income_speed"`
	Avatar              DecorativeItem `json:"avatar"`
	Title               DecorativeItem `json:"title"`
	RequestId           int64          `bson:"request_id" json:"request_id"`
}
type MsgCreatePlayerRes struct {
	Ret       ErrCode `json:"ret"`
	RequestId int64   `bson:"request_id" json:"request_id"`
}

// RequestUpdatePlayerInfo 更新玩家信息请求结构体
type MsgUpdatePlayerInfoReq struct {
	UID        string                 `json:"uid"`
	UpdateData map[string]interface{} `json:"update_data"`
}
type MsgUpdatePlayerInfoRes struct {
	Ret       ErrCode    `json:"ret"`
	TaskList  []TaskInfo `json:"task_list"`
	RequestId int64      `bson:"request_id" json:"request_id"`
}

// RequestDeletePlayer 删除玩家请求结构体
type MsgDeletePlayerReq struct {
	PlatformId string `json:"platform_id"`
	RequestId  int64  `bson:"request_id" json:"request_id"`
}

// RequestGetPlayerInfo 获取玩家信息请求结构体
type MsgGetPlayerInfoReq struct {
	PlatformId string `json:"platform_id"`
	RequestId  int64  `bson:"request_id" json:"request_id"`
}

// ResponsePlayerInfo 玩家信息响应结构体
type MsgGetPlayerInfoRes struct {
	Ret       ErrCode `json:"ret"`
	Player    Player  `json:"player"`
	RequestId int64   `bson:"request_id" json:"request_id"`
}

// DecorativeItem 装饰物品结构体
// DecorativeItem 装饰物品结构体
type DecorativeItem struct {
	Obtained        bool   `bson:"obtained" json:"obtained"`
	ObtainCondition string `bson:"obtain_condition" json:"obtain_condition"`
	Validity        string `bson:"validity" json:"validity"`
	DisplayType     string `bson:"display_type" json:"display_type"`
	Id              int64  `bson:"id" json:"id"`
	Name            string `bson:"name" json:"name"`
	Description     string `json:"description" bson:"description"`
}

// Player 玩家结构体
type Player struct {
	Pid        string `bson:"pid"`
	UID        string `json:"uid"`
	PlayerName string `json:"player_name"`
	ZoneInfo   string `json:"zone_info"`
	// 主角形象相关
	CharacterAppearance string `json:"character_appearance"`
	VoiceMapping        string `json:"voice_mapping"`
	Gender              string `json:"gender"`
	// 玩家属性
	Experience int `json:"experience"`
	// 身份等级相关
	IdentityLevel int `json:"identity_level"`
	// 赚速
	IncomeSpeed int `json:"income_speed"`
	// 装饰相关
	Avatar      DecorativeItem `json:"avatar"`
	Title       DecorativeItem `json:"title"`
	AvatarFrame DecorativeItem `json:"avatar_frame"`
	ChatBubble  DecorativeItem `json:"chat_bubble"`
	ChatTitle   DecorativeItem `json:"chat_title"`
}
type MsgGmRes struct {
	Ret       string `json:"ret"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgCreateTranslateInfoReq struct {
	UserId    string `json:"user_id"`
	TId       int64  `json:"t_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgCreateTranslateInfoRes struct {
	Ret            ErrCode         `json:"ret"`
	TranslatesList []TranslateInfo `json:"translates_list"`
	RequestId      int64           `bson:"request_id" json:"request_id"`
}
type MsgUpdateTranslateLevelReq struct {
	UserId    string `json:"user_id"`
	TId       int64  `json:"t_id"`
	Step      int64  `json:"step"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgUpdateTranslateLevelRes struct {
	Ret            ErrCode         `json:"ret"`
	TranslatesList []TranslateInfo `json:"translates_list"`
}
type MsgExpandTranslateReq struct {
	UserId    string `json:"user_id"`
	TId       int64  `json:"t_id"`
	Step      int64  `json:"step"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgExpandTranslateRes struct {
	Ret            ErrCode         `json:"ret"`
	TranslatesList []TranslateInfo `json:"translates_list"`
	RequestId      int64           `bson:"request_id" json:"request_id"`
}
type TranslateInfo struct {
	UserId      string      `json:"user_id"`
	TId         int64       `json:"t_id"`
	TTid        int64       `json:"tt_id"`
	Level       int64       `json:"level"`
	ExpandLevel int64       `json:"expand_level"`
	CardTooles  []CardToole `bson:"card_tooles" json:"card_tooles"`
	DaoSaoCiShu int         `json:"dao_sao_ci_shu" bson:"dao_sao_ci_shu"` //打扫次数s
}
type CardToole struct {
	CardId   string `bson:"card_id" json:"card_id"`
	StarTime int64  `bson:"star_time" json:"star_time"`
	JobType  int    `bson:"job_type" json:"job_type"`
}
type MsgTranslateListReq struct {
	UserId    string `json:"user_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgTranslateListRes struct {
	TranslatesList []TranslateInfo `json:"translates_list"`
	RequestId      int64           `bson:"request_id" json:"request_id"`
}
type CardInfo struct {
	CardId     string          `json:"card_id"`
	UserId     string          `json:"user_id"`
	Star       int64           `json:"star"`
	Level      int64           `json:"level"`
	SkillList  map[int32]int64 `json:"skill_list"`
	WorkList   map[int32]int64 `json:"work_list"`
	FateList   map[int32]int64 `json:"fate_list"`
	SkinSkill  map[int32]int64 `json:"skin_skill"`
	HolaList   map[int32]int64 `json:"hola_list"`
	UniqueList map[int32]int64 `json:"unique_list"`
	CTId       int64           `json:"ct_id"`
}
type MsgCreateCardReq struct {
	CTId      int64  `json:"ct_id"`
	UserId    string `json:"user_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgCreateCardRes struct {
	Ret       ErrCode    `json:"ret"`
	CardsList []CardInfo `json:"cards_list"`
	RequestId int64      `bson:"request_id" json:"request_id"`
}
type MsgCardListReq struct {
	UserId    string `json:"user_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgUpdateCardLevelReq struct {
	CardId    int64  `json:"card_id"`
	UserId    string `json:"user_id"`
	Step      int64  `json:"step"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgUpdateCardLevelRes struct {
	Ret       ErrCode    `json:"ret"`
	CardsList []CardInfo `json:"cards_list"`
	RequestId int64      `bson:"request_id" json:"request_id"`
}
type MsgUpdateCardStarReq struct {
	CardId    int64  `json:"card_id"`
	UserId    string `json:"user_id"`
	Step      int64  `json:"step"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgUpdateCardStarRes struct {
	Ret       ErrCode     `json:"ret"`
	CardsList []CardInfo  `json:"cards_list"`
	BagList   interface{} `json:"bag_list"`
	RequestId int64       `bson:"request_id" json:"request_id"`
}
type MsgUpdateCardSkillReq struct {
	CardId    int64  `json:"card_id"`
	UserId    string `json:"user_id"`
	SkillType int    `json:"skill_type"`
	SkillId   int64  `json:"skill_id"`
	Step      int64  `json:"step"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgUpdateCardSkillRes struct {
	Ret       ErrCode    `json:"ret"`
	CardsList []CardInfo `json:"cards_list"`
	RequestId int64      `bson:"request_id" json:"request_id"`
}
type MsgTuPoCardReq struct {
	CardId    string `json:"card_id"`
	UserId    string `json:"user_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgTuPoCardRes struct {
	Ret       ErrCode    `json:"ret"`
	CardsList []CardInfo `json:"cards_list"`
	RequestId int64      `bson:"request_id" json:"request_id"`
}
type Backpack struct {
	Items map[int]item.Item
	Size  int
}
type MsgBagListReq struct {
	UserId    string     `json:"user_id"`
	Ret       ErrCode    `json:"ret"`
	BackPack  []Backpack `json:"back_pack"`
	RequestId int64      `bson:"request_id" json:"request_id"`
}
type MsgAddItemReq struct {
	UserId    string `json:"user_id"`
	ItemTmpId int    `json:"item_tmp_id"`
	Quantity  int    `json:"quantity"` // 数量
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgUseItemReq struct {
	UserId    string `json:"user_id"`
	ItemId    int    `json:"item_id"`
	Quantity  int    `json:"quantity"` // 数量
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgGetIncomeRankReq struct {
	Page      int   `json:"page"`
	PageSize  int   `json:"page_size"`
	RequestId int64 `bson:"request_id" json:"request_id"`
}
type MsgGetAbilityRankReq struct {
	Page      int   `json:"page"`
	PageSize  int   `json:"page_size"`
	RequestId int64 `bson:"request_id" json:"request_id"`
}
type MsgGetCharmRankReq struct {
	Page      int   `json:"page"`
	PageSize  int   `json:"page_size"`
	RequestId int64 `bson:"request_id" json:"request_id"`
}
type MsgGetGuildRankReq struct {
	Page      int   `json:"page"`
	PageSize  int   `json:"page_size"`
	RequestId int64 `bson:"request_id" json:"request_id"`
}
type MsgTranslateProductReq struct {
	UserId        string `json:"user_id"`
	TranslateType int    `json:"translate_type"`
	ArgsValue     int    `json:"args_value"`
	Cid           int    `json:"cid"`
	RequestId     int64  `bson:"request_id" json:"request_id"`
}
type MsgRes struct {
	Ret            ErrCode         `json:"ret"`
	Message        string          `json:"message"`
	Result         interface{}     `json:"result"`
	RequestId      int64           `bson:"request_id" json:"request_id"`
	SessionId      string          `json:"session_id"`
	UserId         string          `json:"user_id"`
	ServerTime     int64           `json:"server_time"`
	Player         Player          `json:"player"`
	TranslatesList []TranslateInfo `json:"translates_list"`
	TaskList       []TaskInfo      `json:"task_list"`
	CardsList      []CardInfo      `json:"cards_list"`
	BagList        interface{}     `json:"bag_list"`
}
type MsgUnLockSystem struct {
	UserId    string `json:"user_id"`
	SId       int    `json:"s_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgSystemList struct {
	UserId    string `json:"user_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgLevelInfo struct {
	UserId    string `json:"user_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgIncreaseLevelProgress struct {
	UserId    string `json:"user_id"`
	Level     int    `json:"level"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgBossBattle struct {
	UserId    string `json:"user_id"`
	Level     int    `json:"level"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgGetBreakfastReq struct {
	UserId    string `json:"user_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgUnlockBreakfastToolsReq struct {
	UserId    string `json:"user_id"`
	Tid       int    `json:"tid"`
	Cid       int    `json:"cid"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgUnlockBreakfastBreakfastReq struct {
	UserId    string `json:"user_id"`
	Bid       int    `json:"bid"`
	Cid       int    `json:"cid"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgUnlocksCareerReq struct {
	UserId    string `json:"user_id"`
	TTid      int    `json:"t_tid"`
	Cid       int    `json:"cid"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgUnlockCardToolReq struct {
	UserId    string `json:"user_id"`
	CardIndex int    `json:"card_index"`
	Tid       int    `json:"tid"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgPushCardToolReq struct {
	UserId    string `json:"user_id"`
	CardIndex int    `json:"card_index"`
	JobType   int    `json:"job_type"`
	Tid       int    `json:"tid"`
	CardId    string `json:"card_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgProduceBreakfastReq struct {
	UserId         string `json:"user_id"`
	JobType        int    `json:"job_type"`
	Cid            int    `json:"cid"`
	BreakfastIndex int    `json:"breakfast_index"`
	Num            int    `json:"num"`
	RequestId      int64  `bson:"request_id" json:"request_id"`
}
type MsgFinishBreakfastReq struct {
	UserId         string `json:"user_id"`
	JobType        int    `json:"job_type"`
	Cid            int    `json:"cid"`
	BreakfastIndex int    `json:"breakfast_index"`
	Num            int    `json:"num"`
	RequestId      int64  `bson:"request_id" json:"request_id"`
}
type MsgUpPlayerLevelReq struct {
	UserId    string `json:"user_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgEnterArenaReq struct {
	UserId    string `json:"user_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgMatchArenaReq struct {
	UserId    string `json:"user_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}

type MsgMatchArenaRes struct {
	OpponentID string `json:"opponent_id"`
	RequestId  int64  `bson:"request_id" json:"request_id"`
}
type MsgArenaPaiHangReq struct {
	UserId    string `json:"user_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgArenaChallengeReq struct {
	UserId               string `json:"user_id"`
	AtkedUid             string `json:"atked_uid"`
	Pos                  int    `json:"pos"`
	BuyAddedChallengeNum int    `json:"buy_added_challenge_num"`
	IsClearCdtime        bool   `json:"is_clear_cdtime"`
	RequestId            int64  `bson:"request_id" json:"request_id"`
}
type MsgArenaShopReq struct {
	UserId    string `json:"user_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgBuyBuyAddedChallengeReq struct {
	UserId    string `json:"user_id"`
	ItemId    int    `json:"item_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgChallengeReq struct {
	UserId               string `json:"user_id"`
	AtkedUID             string `json:"atked_uid"`
	Pos                  int    `json:"pos"`
	BuyAddedChallengeNum int    `json:"buy_added_challenge_num"`
	IsClearCdTime        bool   `json:"is_clear_cd_time"`
	RequestId            int64  `bson:"request_id" json:"request_id"`
}
type MsgBuyArenaShopReq struct {
	UserId    string `json:"user_id"`
	ItemId    int    `json:"item_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgArenaResultReq struct {
	UserId     string `json:"user_id"`
	OpponentID string `json:"opponent_id"`
	Result     int    `json:"Result"`
	RequestId  int64  `bson:"request_id" json:"request_id"`
}

type MsgArenaResultRes struct {
	Ret       int   `json:"Ret"`
	RequestId int64 `bson:"request_id" json:"request_id"`
}
type MsgDaoSaoReq struct {
	UserId    string `json:"user_id"`
	TTid      int64  `json:"t_tid"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgAddItemsByXiaoYouReq struct {
	UserId    string     `json:"user_id"`
	ItemIds   []ItemInfo `json:"item_ids"`
	RequestId int64      `bson:"request_id" json:"request_id"`
}
type ItemInfo struct {
	ItemId int `json:"item_id"`
	Num    int `json:"num"`
}
type MsgKaiYeReq struct {
	UserId    string `json:"user_id"`
	Tid       int    `json:"tid"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgChanYeShouYiReq struct {
	UserId    string `json:"user_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgShouYiReq struct {
	UserId    string `json:"user_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgUpVehicleSkillLevelReq struct {
	UserId    string `json:"user_id"`
	VtId      int64  `json:"vt_id"`
	SkillId   int32  `json:"skill_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgNewVehicleReq struct {
	UserId    string `json:"user_id"`
	VtId      int64  `json:"vt_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgVehicleListReq struct {
	UserId    string `json:"user_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgVehicleInfoReq struct {
	UserId    string `json:"user_id"`
	VtId      int64  `json:"vt_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgUpVehicleUpLevelReq struct {
	UserId    string `json:"user_id"`
	VtId      int64  `json:"vt_id"`
	Step      int64  `json:"step"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgUnlockVehicleSkillReq struct {
	UserId    string `json:"user_id"`
	VtId      int64  `json:"vt_id"`
	SkillId   int32  `json:"skill_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgVehicleRandNumReq struct {
	UserId    string `json:"user_id"`
	VtId      int64  `json:"vt_id"`
	SkillId   int32  `json:"skill_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgNewUnionReq struct {
	UserId    string `json:"user_id"`
	UnionId   int32  `json:"union_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgUnionListReq struct {
	UserId    string `json:"user_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgUnionInfoReq struct {
	UserId    string `json:"user_id"`
	UnionId   int32  `json:"union_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgUpUnionLevelReq struct {
	UserId    string `json:"user_id"`
	UnionId   int32  `json:"union_id"`
	Step      int64  `json:"step"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgUpUnionUserLevelReq struct {
	UserId    string `json:"user_id"`
	UnionId   int32  `json:"union_id"`
	Step      int64  `json:"step"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgBaiFangReq struct {
	UserId    string `json:"user_id"`
	UnionId   int32  `json:"union_id"`
	NpcId     int32  `json:"npc_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgJoinUnionReq struct {
	UserId    string `json:"user_id"`
	UnionId   int32  `json:"union_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgNewArtistReq struct {
	UserId    string `json:"user_id"`
	CardId    int32  `json:"card_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgUpArtistSkillLevelReq struct {
	UserId    string `json:"user_id"`
	CardId    int32  `json:"card_id"`
	SkillId   int32  `json:"skill_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgArtistListReq struct {
	UserId    string `json:"user_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgArtistInfoReq struct {
	UserId    string `json:"user_id"`
	CardId    int32  `json:"card_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgUpArtistUpLevelReq struct {
	UserId    string `json:"user_id"`
	VtId      int64  `json:"vt_id"`
	Step      int64  `json:"step"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgUnlockArtistSkillReq struct {
	UserId    string `json:"user_id"`
	CardId    int32  `json:"card_id"`
	SkillId   int32  `json:"skill_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgArtistRandNumReq struct {
	UserId    string `json:"user_id"`
	CardId    int32  `json:"card_id"`
	SkillId   int32  `json:"skill_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgShouYiRes struct {
	Ret       ErrCode     `json:"ret"`
	Message   string      `json:"message"`
	Result    interface{} `json:"result"`
	RequestId int64       `bson:"request_id" json:"request_id"`
}
type MsgDestroyCariReq struct {
	UserId    string `json:"user_id"`
	CardId    int32  `json:"card_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgBuyReq struct {
	UserId    string `json:"user_id"`
	ShopId    int32  `json:"shop_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgUnionShopReq struct {
	UserId    string `json:"user_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}

type MsgUnionBuildReq struct {
	UserId    string `json:"user_id"`
	BuildType int    `json:"build_type"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgUnionBuildListReq struct {
	UserId    string `json:"user_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgUnionShopInfoReq struct {
	UserId    string `json:"user_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgUnionShopBuyReq struct {
	UserId    string `json:"user_id"`
	BuildType int    `json:"build_type"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgTranslateNpcRewardReq struct {
	UserId    string `json:"user_id"`
	Tid       int64  `json:"tid"`
	NpcId     int32  `json:"npc_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgActivityShopInfoReq struct {
	UserId    string `json:"user_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgHouseListReq struct {
	UserId    string `json:"user_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgUnLockHouseReq struct {
	UserId    string `json:"user_id"`
	HouseId   int32  `json:"house_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgUnlockFurnitureReq struct {
	UserId      string `json:"user_id"`
	HouseId     int32  `json:"house_id"`
	FurnitureId int32  `json:"furniture_id"`
	RequestId   int64  `bson:"request_id" json:"request_id"`
}
type MsgAddFurnitureReq struct {
	UserId      string `json:"user_id"`
	HouseId     int32  `json:"house_id"`
	FurnitureId int32  `json:"furniture_id"`
	RequestId   int64  `bson:"request_id" json:"request_id"`
}
type MsgNewHouseReq struct {
	UserId    string `json:"user_id"`
	HouseId   int32  `json:"house_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgQianDaoReq struct {
	UserId    string `json:"user_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgActivityRewardReq struct {
	UserId     string `json:"user_id"`
	RewardType int64  `json:"reward_type"`
	RewardId   int32  `json:"reward_id"`
	RequestId  int64  `bson:"request_id" json:"request_id"`
}
type MsgGiveBeautyReq struct {
	UserId    string `json:"user_id"`
	CardId    int32  `json:"card_id"`
	ItemId    int    `json:"item_id"`
	ItemNum   int    `json:"item_num"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgPublicizeBeautyReq struct {
	UserId    string `json:"user_id"`
	Num       int    `json:"num"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgLevelZhaoGongReq struct {
	UserId    string `json:"user_id"`
	CardId    int64  `json:"card_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgPeiXunGongReq struct {
	UserId    string `json:"user_id"`
	CardId    int64  `json:"card_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgUpArtistBeautyLvReq struct {
	UserId    string `json:"user_id"`
	CardId    int32  `json:"card_id"`
	Step      int64  `json:"step"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
type MsgUpArtistBeautyYinXiaoIdReq struct {
	UserId    string `json:"user_id"`
	CardId    int32  `json:"card_id"`
	YinXiaoId int64  `json:"yin_xiao_id"`
	RequestId int64  `bson:"request_id" json:"request_id"`
}
